The generation of truly random numbers is a difficult task. Different methods have tried to use metastable events to generate a random output value. They all seem to be less than ideal and tend to manipulate the output to restore randomness if they perceive it not to be present. This in itself is a non-random process. For example, some have used a von Neumann corrector to eliminate long runs of 0's and 1's (see for example, R. Brederlow, et al., “A Low-Power True Random Number Generator Using the Random Telegraph Noise of Single Oxide-Traps,” ISSCC Dig. Tech. Papers, pp. 536-532, February 2006). Such a correction only acts to mask the fact that the initial bit stream was not truly random and it is unable to restore true randomness. Kinniment et al “Design of an On-Chip Random Number Generator using Metastability”, Proc European Solid-State circuit conf., pp 595-598 September 2002, discloses a method that uses metastability to amplify thermal noise using an XOR corrector and controls the metastable operation by biasing the system to generate equal numbers of 0's and 1's. However, this endangers the system by generating correlated streams, which actually lack randomness.